/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.trandio.manager;

import com.oreilly.servlet.MultipartRequest;
import com.oreilly.servlet.multipart.DefaultFileRenamePolicy;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.naming.NamingException;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.io.FilenameUtils;
import org.trandio.dao.*;
import org.trandio.model.*;

/**
 *
 * @author root
 */
public class AdministrarSetServlet extends HttpServlet {

    EntidadInterface entidadInterface;
    GrupoactInterface grupoactInterface;
    MedicoInterface medicoInterface;
    ManualInterface manualInterface;
    ActividadInterface actividadInterface;
    ContratoInterface contratoInterface;
    PacienteInterface pacienteInterface;
    ProgramapypInterface programapypInterface;
    ActividadpypInterface actividadpypInterface;
    EntidadVO entidadVO;
    GrupoactVO grupoactVO;
    MedicoVO medicoVO;
    ManualVO manualVO;
    PacienteVO pacienteVO;
    ProgramapypVO programapypVO;
    CuentaCobroVO cuentaCobroVO;
    CuentaCobroInterface cuentaCobroInterface;

    /**
     * Processes requests for both HTTP
     * <code>GET</code> and
     * <code>POST</code> methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();

        entidadInterface = new EntidadDAO();
        grupoactInterface = new GrupoactDAO();
        medicoInterface = new MedicoDAO();
        manualInterface = new ManualDAO();
        actividadInterface = new ActividadDAO();
        contratoInterface = new ContratoDAO();
        pacienteInterface = new PacienteDAO();
        programapypInterface = new ProgramapypDAO();
        actividadpypInterface = new ActividadpypDAO();
        cuentaCobroInterface = new CuentaCobroDAO();


        try {
            try {

                if (request.getParameter("op").equals("editar_entidad")) {
                    entidadVO = new EntidadVO();
                    entidadVO.setId(Integer.parseInt(request.getParameter("id")));
                    entidadVO.setCodigo(request.getParameter("codigo"));
                    entidadVO.setDescripcion(request.getParameter("descripcion"));
                    entidadVO.setDireccion(request.getParameter("direccion"));
                    entidadVO.setTelefono(request.getParameter("telefono"));
                    entidadVO.setId_departamento(Integer.parseInt(request.getParameter("id_depto")));
                    entidadVO.setId_municipio(Integer.parseInt(request.getParameter("id_mupio")));
                    entidadInterface.guardarEntidadEdit(entidadVO);
                    out.println(request.getParameter("op"));
                } else if (request.getParameter("op").equals("nuevo_entidad")) {
                    entidadVO = new EntidadVO();
                    entidadVO.setCodigo(request.getParameter("codigo"));
                    entidadVO.setDescripcion(request.getParameter("descripcion"));
                    entidadVO.setDireccion(request.getParameter("direccion"));
                    entidadVO.setTelefono(request.getParameter("telefono"));
                    entidadVO.setId_departamento(Integer.parseInt(request.getParameter("id_depto")));
                    entidadVO.setId_municipio(Integer.parseInt(request.getParameter("id_mupio")));
                    entidadInterface.guardarEntidad(entidadVO);
                    out.println(request.getParameter("op"));
                } else if (request.getParameter("op").equals("editar_grupoact")) {
                    grupoactVO = new GrupoactVO();
                    grupoactVO.setId(Integer.parseInt(request.getParameter("id")));
                    grupoactVO.setCodigo(request.getParameter("codigo"));
                    grupoactVO.setDescripcion(request.getParameter("descripcion"));
                    grupoactVO.setCentro_costo(Integer.parseInt(request.getParameter("id_centro_costo")));
                    grupoactInterface.guardarGrupoactEdit(grupoactVO);
                    out.println(request.getParameter("op"));
                } else if (request.getParameter("op").equals("nuevo_grupoact")) {
                    grupoactVO = new GrupoactVO();
                    grupoactVO.setCodigo(request.getParameter("codigo"));
                    grupoactVO.setDescripcion(request.getParameter("descripcion"));
                    grupoactVO.setCentro_costo(Integer.parseInt(request.getParameter("id_centro_costo")));
                    grupoactInterface.guardarGrupoact(grupoactVO);
                    out.println(request.getParameter("op"));
                } else if (request.getParameter("op").equals("editar_medico")) {
                    medicoVO = new MedicoVO();
                    medicoVO.setId(Integer.parseInt(request.getParameter("id")));
                    medicoVO.setId_tipo_identificacion(Integer.parseInt(request.getParameter("id_tipo_ide")));
                    medicoVO.setIdentificacion(request.getParameter("identificacion"));
                    medicoVO.setNombre1(request.getParameter("nombre1"));
                    medicoVO.setNombre2(request.getParameter("nombre2"));
                    medicoVO.setApellido1(request.getParameter("apellido1"));
                    medicoVO.setApellido2(request.getParameter("apellido2"));
                    medicoVO.setRegistro(request.getParameter("numero_registro"));
                    medicoVO.setId_especialidad(Integer.parseInt(request.getParameter("id_especialidad")));
                    medicoInterface.guardarMedicoEdit(medicoVO);
                    out.println(request.getParameter("op"));
                } else if (request.getParameter("op").equals("nuevo_medico")) {
                    medicoVO = new MedicoVO();
                    medicoVO.setId_tipo_identificacion(Integer.parseInt(request.getParameter("id_tipo_ide")));
                    medicoVO.setIdentificacion(request.getParameter("identificacion"));
                    medicoVO.setNombre1(request.getParameter("nombre1"));
                    medicoVO.setNombre2(request.getParameter("nombre2"));
                    medicoVO.setApellido1(request.getParameter("apellido1"));
                    medicoVO.setApellido2(request.getParameter("apellido2"));
                    medicoVO.setId_especialidad(Integer.parseInt(request.getParameter("id_especialidad")));
                    medicoVO.setRegistro(request.getParameter("numero_registro"));
                    medicoInterface.guardarMedico(medicoVO);
                    out.println(request.getParameter("op"));
                } else if (request.getParameter("op").equals("nuevo_paciente")) {
                    pacienteVO = new PacienteVO();

                    SimpleDateFormat formatoDelTexto = new SimpleDateFormat("dd/MM/yyyy");
                    String cadFechaNac = request.getParameter("fecha_eps");
                    String cadFechaArs = request.getParameter("fecha_nac");

                    Date fechaNac = null;
                    Date fechaArs = null;
                    try {
                        fechaNac = formatoDelTexto.parse(cadFechaNac);
                        fechaArs = formatoDelTexto.parse(cadFechaArs);
                    } catch (ParseException ex) {
                        Logger.getLogger(AdministrarSetServlet.class.getName()).log(Level.SEVERE, null, ex);
                    }

                    pacienteVO.setId_tipo_identificacion(Integer.parseInt(request.getParameter("id_tipo_ide")));
                    pacienteVO.setNumero_identificacion(request.getParameter("identificacion"));
                    pacienteVO.setNombre1(request.getParameter("nombre1"));
                    pacienteVO.setNombre2(request.getParameter("nombre2"));
                    pacienteVO.setApellido1(request.getParameter("apellido1"));
                    pacienteVO.setApellido2(request.getParameter("apellido2"));
                    pacienteVO.setFecha_nacimiento(fechaNac);
                    pacienteVO.setId_sexo(Integer.parseInt(request.getParameter("idsexo")));
                    pacienteVO.setId_departamento(Integer.parseInt(request.getParameter("id_depto")));
                    pacienteVO.setId_municipio(Integer.parseInt(request.getParameter("id_mupio")));
                    pacienteVO.setId_zona(Integer.parseInt(request.getParameter("zona")));
                    pacienteVO.setFecha_afil_ars(fechaArs);
                    pacienteVO.setId_tipopoblacion(Integer.parseInt(request.getParameter("id_tipo_poblacion")));
                    pacienteVO.setDireccion(request.getParameter("direccion"));
                    pacienteVO.setTelefono(request.getParameter("telefono"));
                    pacienteVO.setId_entidad(Integer.parseInt(request.getParameter("id_entidad")));
                    pacienteVO.setId_nivel(Integer.parseInt(request.getParameter("id_nivel")));

                    boolean estp = false;
                    if (request.getParameter("vestp").equals("On")) {
                        estp = true;
                    }

                    pacienteVO.setEstp(estp);

                    System.out.println("Llego aqui---");

                    pacienteInterface.guardarPaciente(pacienteVO);
                    out.println(request.getParameter("op"));
                } else if (request.getParameter("op").equals("editar_paciente")) {
                    pacienteVO = new PacienteVO();

                    System.out.println("Llego aqui---00");

                    SimpleDateFormat formatoDelTexto = new SimpleDateFormat("dd/MM/yyyy");
                    String cadFechaNac = request.getParameter("fecha_eps");
                    String cadFechaArs = request.getParameter("fecha_nac");

                    Date fechaNac = null;
                    Date fechaArs = null;
                    try {
                        fechaNac = formatoDelTexto.parse(cadFechaNac);
                        fechaArs = formatoDelTexto.parse(cadFechaArs);
                    } catch (ParseException ex) {
                        Logger.getLogger(AdministrarSetServlet.class.getName()).log(Level.SEVERE, null, ex);
                    }

                    pacienteVO.setId_tipo_identificacion(Integer.parseInt(request.getParameter("id_tipo_ide")));
                    pacienteVO.setNumero_identificacion(request.getParameter("identificacion"));
                    pacienteVO.setNombre1(request.getParameter("nombre1"));
                    pacienteVO.setNombre2(request.getParameter("nombre2"));
                    pacienteVO.setApellido1(request.getParameter("apellido1"));
                    pacienteVO.setApellido2(request.getParameter("apellido2"));
                    pacienteVO.setFecha_nacimiento(fechaNac);
                    pacienteVO.setId_sexo(Integer.parseInt(request.getParameter("idsexo")));
                    pacienteVO.setId_departamento(Integer.parseInt(request.getParameter("id_depto")));
                    pacienteVO.setId_municipio(Integer.parseInt(request.getParameter("id_mupio")));
                    pacienteVO.setId_zona(Integer.parseInt(request.getParameter("zona")));
                    pacienteVO.setFecha_afil_ars(fechaArs);
                    pacienteVO.setId_tipopoblacion(Integer.parseInt(request.getParameter("id_tipo_poblacion")));
                    pacienteVO.setDireccion(request.getParameter("direccion"));
                    pacienteVO.setTelefono(request.getParameter("telefono"));
                    pacienteVO.setId_entidad(Integer.parseInt(request.getParameter("id_entidad")));
                    pacienteVO.setId_nivel(Integer.parseInt(request.getParameter("id_nivel")));
                    pacienteVO.setId(Integer.parseInt(request.getParameter("id")));
                    boolean estp = false;
                    if (request.getParameter("vestp").equals("On")) {
                        estp = true;
                    }

                    pacienteVO.setEstp(estp);

                    //System.out.println("Llego aqui---");

                    pacienteInterface.guardarPacienteEdit(pacienteVO);
                    out.println(request.getParameter("op"));
                } else if (request.getParameter("op").equals("editar_manual")) {
                    manualVO = new ManualVO();
                    manualVO.setId(Integer.parseInt(request.getParameter("id")));
                    manualVO.setCodigo(request.getParameter("codigo"));
                    manualVO.setDescripcion(request.getParameter("descripcion"));
                    manualVO.setIdbase(Integer.parseInt(request.getParameter("id_manual_base")));
                    manualInterface.guardarManualEdit(manualVO);

                    //CREAR UN MANUAL CON TARIFAS BASADO EN OTRO
                    int idmanual = Integer.parseInt(request.getParameter("id"));
                    float porcmas = Float.parseFloat(request.getParameter("porcmas"));
                    int manualbase = Integer.parseInt(request.getParameter("id_manual_base"));
                    if (porcmas > 0) {
                        manualInterface.crearTarifas(idmanual, porcmas, manualbase);
                    }
                    out.println(request.getParameter("op"));
                } else if (request.getParameter("op").equals("nuevo_manual")) {
                    manualVO = new ManualVO();
                    manualVO.setCodigo(request.getParameter("codigo"));
                    manualVO.setDescripcion(request.getParameter("descripcion"));
                    manualVO.setIdbase(Integer.parseInt(request.getParameter("id_manual_base")));

                    //CREAR UN MANUAL CON TARIFAS BASADO EN OTRO
                    int idmanual = manualInterface.guardarManual(manualVO);
                    float porcmas = Float.parseFloat(request.getParameter("porcmas"));
                    int manualbase = Integer.parseInt(request.getParameter("id_manual_base"));

                    if (porcmas > 0) {
                        manualInterface.crearTarifas(idmanual, porcmas, manualbase);
                    }
                    out.println(request.getParameter("op"));
                } else if (request.getParameter("op").equals("editar_actividad")) {
                    ActividadVO actividadVO = new ActividadVO();
                    actividadVO.setCodigo(request.getParameter("codigo"));
                    actividadVO.setDescripcion(request.getParameter("descripcion"));
                    actividadVO.setSexo(Integer.parseInt(request.getParameter("sexo")));
                    actividadVO.setGrupoquir(Integer.parseInt(request.getParameter("id_grupoqx")));
                    actividadVO.setGrupo_funcional(Integer.parseInt(request.getParameter("id_grupo_actividad")));
                    actividadVO.setManual(Integer.parseInt(request.getParameter("id_manual")));

                    boolean insumo = false;
                    if (request.getParameter("vinsumo").equals("On")) {
                        insumo = true;
                    }
                    actividadVO.setInsumo(insumo);

                    boolean riprn = false;
                    if (request.getParameter("vriprn").equals("On")) {
                        riprn = true;
                    }
                    actividadVO.setRiprn(riprn);

                    boolean ripestancia = false;
                    if (request.getParameter("vripestancia").equals("On")) {
                        ripestancia = true;
                    }
                    actividadVO.setRipestancia(ripestancia);

                    boolean doblevia = false;
                    if (request.getParameter("vdoblevia").equals("On")) {
                        doblevia = true;
                    }
                    actividadVO.setDoblevia(doblevia);
                    actividadVO.setCruenta(false);

                    actividadVO.setTipo_registro(Integer.parseInt(request.getParameter("id_tipo_registro")));
                    actividadVO.setId(Integer.parseInt(request.getParameter("id")));

                    boolean habilitada = false;
                    if (request.getParameter("vhabilitada").equals("On")) {
                        habilitada = true;
                    }
                    actividadVO.setHabilitada(habilitada);
                    actividadVO.setCentro_costo(Integer.parseInt(request.getParameter("id_centro_costo")));
                    actividadVO.setEdadini(Integer.parseInt(request.getParameter("edad1")));
                    actividadVO.setEdadfin(Integer.parseInt(request.getParameter("edad2")));
                    actividadVO.setMedida1(request.getParameter("medida1").charAt(0));
                    actividadVO.setMedida2(request.getParameter("medida2").charAt(0));
                    actividadVO.setId_especialidad(Integer.parseInt(request.getParameter("id_especialidad")));

                    actividadInterface.guardarActividadEdit(actividadVO);
                    out.println(request.getParameter("op"));
                } else if (request.getParameter("op").equals("nuevo_actividad")) {
                    ActividadVO actividadVO = new ActividadVO();
                    actividadVO.setCodigo(request.getParameter("codigo"));
                    actividadVO.setDescripcion(request.getParameter("descripcion"));
                    actividadVO.setSexo(Integer.parseInt(request.getParameter("sexo")));
                    actividadVO.setGrupoquir(Integer.parseInt(request.getParameter("id_grupoqx")));
                    actividadVO.setGrupo_funcional(Integer.parseInt(request.getParameter("id_grupo_actividad")));
                    actividadVO.setManual(Integer.parseInt(request.getParameter("id_manual")));

                    boolean insumo = false;
                    if (request.getParameter("vinsumo").equals("On")) {
                        insumo = true;
                    }
                    actividadVO.setInsumo(insumo);

                    boolean riprn = false;
                    if (request.getParameter("vriprn").equals("On")) {
                        riprn = true;
                    }
                    actividadVO.setRiprn(riprn);

                    boolean ripestancia = false;
                    if (request.getParameter("vripestancia").equals("On")) {
                        ripestancia = true;
                    }
                    actividadVO.setRipestancia(ripestancia);

                    boolean doblevia = false;
                    if (request.getParameter("vdoblevia").equals("On")) {
                        doblevia = true;
                    }
                    actividadVO.setDoblevia(doblevia);
                    actividadVO.setCruenta(false);

                    actividadVO.setTipo_registro(Integer.parseInt(request.getParameter("id_tipo_registro")));

                    boolean habilitada = false;
                    if (request.getParameter("vhabilitada").equals("On")) {
                        habilitada = true;
                    }
                    actividadVO.setHabilitada(habilitada);
                    actividadVO.setCentro_costo(Integer.parseInt(request.getParameter("id_centro_costo")));
                    actividadVO.setEdadini(Integer.parseInt(request.getParameter("edad1")));
                    actividadVO.setEdadfin(Integer.parseInt(request.getParameter("edad2")));
                    actividadVO.setMedida1(request.getParameter("medida1").charAt(0));
                    actividadVO.setMedida2(request.getParameter("medida2").charAt(0));
                    actividadVO.setId_especialidad(Integer.parseInt(request.getParameter("id_especialidad")));
                    actividadInterface.guardarActividad(actividadVO);
                    out.println(request.getParameter("op"));
                } else if (request.getParameter("op").equals("editar_contrato")) {
                    ContratoVO contratoVO = new ContratoVO();
                    contratoVO.setCodigo(request.getParameter("codigo"));
                    contratoVO.setDescripcion(request.getParameter("descripcion"));
                    contratoVO.setEntidad(Integer.parseInt(request.getParameter("id_entidad")));
                    contratoVO.setManual(Integer.parseInt(request.getParameter("id_manual")));
                    contratoVO.setTipo(Integer.parseInt(request.getParameter("id_tipo_contrato")));
                    contratoVO.setRegimen(Integer.parseInt(request.getParameter("id_regimen")));
                    contratoVO.setTipo_doc(Integer.parseInt(request.getParameter("id_tipo_doc")));

                    SimpleDateFormat formatoDelTexto = new SimpleDateFormat("dd/MM/yyyy");
                    String cadFecha1 = request.getParameter("fechaini");
                    String cadFecha2 = request.getParameter("fechafin");

                    Date fechaIni = null;
                    Date fechaFin = null;
                    try {
                        fechaIni = formatoDelTexto.parse(cadFecha1);
                        fechaFin = formatoDelTexto.parse(cadFecha2);
                    } catch (ParseException ex) {
                        Logger.getLogger(AdministrarSetServlet.class.getName()).log(Level.SEVERE, null, ex);
                    }
                    contratoVO.setInicio(fechaIni);
                    contratoVO.setFin(fechaFin);
                    contratoVO.setMonto_fac(Float.parseFloat(request.getParameter("monto_fac")));
                    contratoVO.setMonto_cap(Float.parseFloat(request.getParameter("monto_cap")));
                    contratoVO.setPorc_alarma(Integer.parseInt(request.getParameter("porc")));
                    contratoVO.setUpc_anual(Float.parseFloat(request.getParameter("upcanual")));
                    contratoVO.setUpc_mensual(Float.parseFloat(request.getParameter("upcmes")));

                    boolean modelo = false;
                    if (request.getParameter("vmodelo").equals("On")) {
                        modelo = true;
                    }
                    contratoVO.setModelo(modelo);

                    boolean pyp = false;
                    if (request.getParameter("vpyp").equals("On")) {
                        pyp = true;
                    }
                    contratoVO.setPyp(pyp);

                    /*
                     * boolean gen = false;
                     * if(request.getParameter("vgen").equals("On")){ gen =
                     * true; } contratoVO.setModelo(gen);
                     */

                    boolean activo = false;
                    if (request.getParameter("vactivo").equals("On")) {
                        activo = true;
                    }
                    contratoVO.setActivo(activo);

                    contratoVO.setId(Integer.parseInt(request.getParameter("id")));
                    contratoInterface.guardarContratoEdit(contratoVO);
                    out.println(request.getParameter("op"));
                } else if (request.getParameter("op").equals("nuevo_contrato")) {
                    ContratoVO contratoVO = new ContratoVO();
                    contratoVO.setCodigo(request.getParameter("codigo"));
                    contratoVO.setDescripcion(request.getParameter("descripcion"));
                    contratoVO.setEntidad(Integer.parseInt(request.getParameter("id_entidad")));
                    contratoVO.setManual(Integer.parseInt(request.getParameter("id_manual")));
                    contratoVO.setTipo(Integer.parseInt(request.getParameter("id_tipo_contrato")));
                    contratoVO.setRegimen(Integer.parseInt(request.getParameter("id_regimen")));
                    contratoVO.setTipo_doc(Integer.parseInt(request.getParameter("id_tipo_doc")));

                    SimpleDateFormat formatoDelTexto = new SimpleDateFormat("dd/MM/yyyy");
                    String cadFecha1 = request.getParameter("fechaini");
                    String cadFecha2 = request.getParameter("fechafin");

                    Date fechaIni = null;
                    Date fechaFin = null;
                    try {
                        fechaIni = formatoDelTexto.parse(cadFecha1);
                        fechaFin = formatoDelTexto.parse(cadFecha2);
                    } catch (ParseException ex) {
                        Logger.getLogger(AdministrarSetServlet.class.getName()).log(Level.SEVERE, null, ex);
                    }
                    contratoVO.setInicio(fechaIni);
                    contratoVO.setFin(fechaFin);
                    contratoVO.setMonto_fac(Float.parseFloat(request.getParameter("monto_fac")));
                    contratoVO.setMonto_cap(Float.parseFloat(request.getParameter("monto_cap")));
                    contratoVO.setPorc_alarma(Integer.parseInt(request.getParameter("porc")));
                    contratoVO.setUpc_anual(Float.parseFloat(request.getParameter("upcanual")));
                    contratoVO.setUpc_mensual(Float.parseFloat(request.getParameter("upcmes")));
                    boolean modelo = false;
                    if (request.getParameter("vmodelo").equals("On")) {
                        modelo = true;
                    }
                    contratoVO.setModelo(modelo);

                    boolean pyp = false;
                    if (request.getParameter("vpyp").equals("On")) {
                        pyp = true;
                    }
                    contratoVO.setPyp(pyp);

                    /*
                     * boolean gen = false;
                     * if(request.getParameter("vgen").equals("On")){ gen =
                     * true; }
                     */
                    //contratoVO.setG(gen);

                    boolean activo = false;
                    if (request.getParameter("vactivo").equals("On")) {
                        activo = true;
                    }
                    contratoVO.setActivo(activo);

                    int idcontrato = contratoInterface.guardarContrato(contratoVO);

                    out.println(request.getParameter("op") + "=>" + idcontrato + "=>");
                } //PARA LOS PROGRAMAS DE PYP
                else if (request.getParameter("op").equals("editar_programapyp")) {
                    programapypVO = new ProgramapypVO();
                    programapypVO.setId(Integer.parseInt(request.getParameter("id")));
                    programapypVO.setCodigo(request.getParameter("codigo"));
                    programapypVO.setDescripcion(request.getParameter("descripcion"));
                    programapypInterface.guardarProgramapypEdit(programapypVO);
                    out.println(request.getParameter("op"));
                } else if (request.getParameter("op").equals("nuevo_programapyp")) {
                    programapypVO = new ProgramapypVO();
                    programapypVO.setCodigo(request.getParameter("codigo"));
                    programapypVO.setDescripcion(request.getParameter("descripcion"));
                    programapypInterface.guardarProgramapyp(programapypVO);
                    out.println(request.getParameter("op"));
                } //PARA LAS ACTIVIDADES DE PYP
                else if (request.getParameter("op").equals("editar_actividadpyp")) {

                    int finCon = 0;
                    int finPro = 0;
                    int actCup = 0;
                    int actSoa = 0;
                    int ideDia = 0;
                    int canAct = 0;
                    int canSes = 0;

                    if (!request.getParameter("id_fincn").equals("")) {
                        finCon = Integer.parseInt(request.getParameter("id_fincn").trim());
                    }

                    if (!request.getParameter("id_finpx").equals("")) {
                        finPro = Integer.parseInt(request.getParameter("id_finpx").trim());
                    }

                    if (!request.getParameter("id_actcups").equals("")) {
                        actCup = Integer.parseInt(request.getParameter("id_actcups").trim());
                    }

                    if (!request.getParameter("id_actsoat").equals("")) {
                        actSoa = Integer.parseInt(request.getParameter("id_actsoat").trim());
                    }

                    if (!request.getParameter("id_diagnostico").equals("")) {
                        ideDia = Integer.parseInt(request.getParameter("id_diagnostico").trim());
                    }

                    if (!request.getParameter("cantidad").equals("")) {
                        canAct = Integer.parseInt(request.getParameter("cantidad").trim());
                    }

                    if (!request.getParameter("frecuencia_sesion").equals("")) {
                        canSes = Integer.parseInt(request.getParameter("frecuencia_sesion").trim());
                    }

                    ActividadpypVO actividadpypVO = new ActividadpypVO();
                    actividadpypVO.setCodigo(request.getParameter("codigo"));
                    actividadpypVO.setDescripcion(request.getParameter("descripcion"));
                    actividadpypVO.setSexo(Integer.parseInt(request.getParameter("sexo")));
                    actividadpypVO.setId(Integer.parseInt(request.getParameter("id")));

                    actividadpypVO.setFrecuencia(Integer.parseInt(request.getParameter("frecuencia")));
                    actividadpypVO.setPrograma(Integer.parseInt(request.getParameter("id_programapyp")));
                    actividadpypVO.setIdfincn(finCon);
                    actividadpypVO.setIdfinpx(finPro);
                    actividadpypVO.setIdcups(actCup);
                    actividadpypVO.setIdsoat(actSoa);

                    boolean habilitada = false;
                    if (request.getParameter("vhabilitada").equals("On")) {
                        habilitada = true;
                    }
                    actividadpypVO.setHabilitada(habilitada);
                    actividadpypVO.setEdadini(Integer.parseInt(request.getParameter("edad1")));
                    actividadpypVO.setEdadfin(Integer.parseInt(request.getParameter("edad2")));
                    actividadpypVO.setMedida1(request.getParameter("medida1").charAt(0));
                    actividadpypVO.setMedida2(request.getParameter("medida2").charAt(0));

                    actividadpypVO.setCantidad(canAct);
                    actividadpypVO.setTiempo(request.getParameter("tiempo").charAt(0));

                    actividadpypVO.setIdactividad(Integer.parseInt(request.getParameter("id_actividad").trim()));
                    actividadpypVO.setIddiagnostico(ideDia);
                    actividadpypVO.setCantidadsesion(canSes);

                    actividadpypInterface.guardarActividadpypEdit(actividadpypVO);
                    out.println(request.getParameter("op"));
                } else if (request.getParameter("op").equals("nuevo_actividadpyp")) {

                    int finCon = 0;
                    int finPro = 0;
                    int actCup = 0;
                    int actSoa = 0;
                    int ideDia = 0;
                    int canAct = 0;
                    int canSes = 0;

                    if (!request.getParameter("id_fincn").equals("")) {
                        finCon = Integer.parseInt(request.getParameter("id_fincn").trim());
                    }

                    if (!request.getParameter("id_finpx").equals("")) {
                        finPro = Integer.parseInt(request.getParameter("id_finpx").trim());
                    }

                    if (!request.getParameter("id_actcups").equals("")) {
                        actCup = Integer.parseInt(request.getParameter("id_actcups").trim());
                    }

                    if (!request.getParameter("id_actsoat").equals("")) {
                        actSoa = Integer.parseInt(request.getParameter("id_actsoat").trim());
                    }

                    if (!request.getParameter("id_diagnostico").equals("")) {
                        ideDia = Integer.parseInt(request.getParameter("id_diagnostico").trim());
                    }

                    if (!request.getParameter("cantidad").equals("")) {
                        canAct = Integer.parseInt(request.getParameter("cantidad").trim());
                    }

                    if (!request.getParameter("frecuencia_sesion").equals("")) {
                        canSes = Integer.parseInt(request.getParameter("frecuencia_sesion").trim());
                    }


                    ActividadpypVO actividadpypVO = new ActividadpypVO();
                    actividadpypVO.setCodigo(request.getParameter("codigo"));
                    actividadpypVO.setDescripcion(request.getParameter("descripcion"));
                    actividadpypVO.setSexo(Integer.parseInt(request.getParameter("sexo")));
                    actividadpypVO.setFrecuencia(Integer.parseInt(request.getParameter("frecuencia")));
                    actividadpypVO.setPrograma(Integer.parseInt(request.getParameter("id_programapyp")));
                    actividadpypVO.setIdfincn(finCon);
                    actividadpypVO.setIdfinpx(finPro);
                    actividadpypVO.setIdcups(actCup);
                    actividadpypVO.setIdsoat(actSoa);


                    boolean habilitada = false;
                    if (request.getParameter("vhabilitada").equals("On")) {
                        habilitada = true;
                    }

                    actividadpypVO.setHabilitada(habilitada);

                    actividadpypVO.setCantidad(canAct);
                    actividadpypVO.setTiempo(request.getParameter("tiempo").charAt(0));

                    actividadpypVO.setEdadini(Integer.parseInt(request.getParameter("edad1")));
                    actividadpypVO.setEdadfin(Integer.parseInt(request.getParameter("edad2")));
                    actividadpypVO.setMedida1(request.getParameter("medida1").charAt(0));
                    actividadpypVO.setMedida2(request.getParameter("medida2").charAt(0));

                    actividadpypVO.setIdactividad(Integer.parseInt(request.getParameter("id_actividad").trim()));
                    actividadpypVO.setIddiagnostico(ideDia);
                    actividadpypVO.setCantidadsesion(canSes);

                    actividadpypInterface.guardarActividadpyp(actividadpypVO);
                    out.println(request.getParameter("op"));
                } //PARA LAS CUENTAS DE COBRO
                else if (request.getParameter("op").equals("editar_cuenta")) {
                    cuentaCobroVO = new CuentaCobroVO();
                    cuentaCobroVO.setId(Integer.parseInt(request.getParameter("id")));
                    cuentaCobroVO.setNumero(request.getParameter("numero"));
                    cuentaCobroVO.setIdentidad(Integer.parseInt(request.getParameter("identidad")));


                    SimpleDateFormat formatoDelTexto = new SimpleDateFormat("dd/MM/yyyy");
                    String cadFecha1 = request.getParameter("fecini");
                    String cadFecha2 = request.getParameter("fecfin");

                    Date fechaIni = null;
                    Date fechaFin = null;
                    try {
                        fechaIni = formatoDelTexto.parse(cadFecha1);
                        fechaFin = formatoDelTexto.parse(cadFecha2);
                    } catch (ParseException ex) {
                        Logger.getLogger(AdministrarSetServlet.class.getName()).log(Level.SEVERE, null, ex);
                    }
                    cuentaCobroVO.setFecini(fechaIni);
                    cuentaCobroVO.setFecfin(fechaFin);
                    cuentaCobroVO.setIdentidad(Integer.parseInt(request.getParameter("genrips")));
                    cuentaCobroInterface.guardaCuentaCobroEdit(cuentaCobroVO);
                    out.println(request.getParameter("op"));
                } else if (request.getParameter("op").equals("nuevo_cuenta")) {
                    cuentaCobroVO = new CuentaCobroVO();
                    cuentaCobroVO.setNumero(request.getParameter("numero"));
                    cuentaCobroVO.setIdentidad(Integer.parseInt(request.getParameter("identidad")));


                    SimpleDateFormat formatoDelTexto = new SimpleDateFormat("dd/MM/yyyy");
                    String cadFecha1 = request.getParameter("fecini");
                    String cadFecha2 = request.getParameter("fecfin");

                    Date fechaIni = null;
                    Date fechaFin = null;
                    try {
                        fechaIni = formatoDelTexto.parse(cadFecha1);
                        fechaFin = formatoDelTexto.parse(cadFecha2);
                    } catch (ParseException ex) {
                        Logger.getLogger(AdministrarSetServlet.class.getName()).log(Level.SEVERE, null, ex);
                    }
                    cuentaCobroVO.setFecini(fechaIni);
                    cuentaCobroVO.setFecfin(fechaFin);

                    if (!request.getParameter("genrips").equals("")) {
                        cuentaCobroVO.setGenrips(Integer.parseInt(request.getParameter("genrips")));
                    } else {
                        cuentaCobroVO.setGenrips(0);
                    }

                    cuentaCobroInterface.guardaCuentaCobro(cuentaCobroVO);
                    out.println(request.getParameter("op"));
                }


            } catch (SQLException ex) {
                Logger.getLogger(AdministrarSetServlet.class.getName()).log(Level.SEVERE, null, ex);
            } catch (NamingException ex) {
                Logger.getLogger(AdministrarSetServlet.class.getName()).log(Level.SEVERE, null, ex);
            }

        } finally {
            out.close();
        }
    }

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
     * Handles the HTTP
     * <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Handles the HTTP
     * <code>POST</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>
}